Don't crash when dragging from a source that doesn't support uri lists
authorRichard Hult <richard@imendio.com>
Mon, 3 Dec 2007 19:51:20 +0000 (19:51 +0000)
committerRichard Hult <rhult@src.gnome.org>
Mon, 3 Dec 2007 19:51:20 +0000 (19:51 +0000)
2007-12-03  Richard Hult  <richard@imendio.com>

* gtk/gtkquartz.c: (_gtk_quartz_set_selection_data_for_pasteboard):
Don't crash when dragging from a source that doesn't support uri
lists (bug #499868, Paul Davis).

svn path=/trunk/; revision=19102

ChangeLog
gtk/gtkquartz.c

index 50b34ad4d09c9c0665f3553ea6672d1df8eec8ad..4869c0d288f20b7f4d435d47450dd4af7ed60687 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-12-03  Richard Hult  <richard@imendio.com>
+
+       * gtk/gtkquartz.c: (_gtk_quartz_set_selection_data_for_pasteboard):
+       Don't crash when dragging from a source that doesn't support uri
+       lists (bug #499868, Paul Davis).
+
 2007-12-03  Richard Hult  <richard@imendio.com>
 
        * gdk/quartz/gdkwindow-quartz.c:
index 273666d5faa6a3ce996c7943dc03cbd19fd1627d..0973607fe8ed7bb935548aa4c2a369ebccdaf8ab 100644 (file)
@@ -220,7 +220,7 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
           NSURL *url = [NSURL URLFromPasteboard:pasteboard];
 
           selection_data->target = gdk_atom_intern_static_string ("text/uri-list");
-      
+
           uris[0] = (gchar *) [[url description] UTF8String];
           uris[1] = NULL;
           gtk_selection_data_set_uris (selection_data, uris);
@@ -295,14 +295,16 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard *pasteboard,
                                                              &list);
 
       if (count > 0)
-       result = g_uri_list_extract_uris (list[0]);
-      g_strfreev (list);
+        {
+          result = g_uri_list_extract_uris (list[0]);
 
-      url = [NSURL URLWithString:[NSString stringWithUTF8String:result[0]]];
-      [url writeToPasteboard:pasteboard];
+          url = [NSURL URLWithString:[NSString stringWithUTF8String:result[0]]];
+          [url writeToPasteboard:pasteboard];
 
-      g_strfreev (result);
+          g_strfreev (result);
+        }
 
+      g_strfreev (list);
     }
   else
     [pasteboard setData:[NSData dataWithBytesNoCopy:selection_data->data
@@ -310,5 +312,3 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard *pasteboard,
                                       freeWhenDone:NO]
                 forType:type];
 }
-
-